package cn.fan.testfunction.model;

import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Pattern;

/**
 *
 * 如果spring-boot版本小于2.3.x，spring-boot-starter-web会自动传入hibernate-validator依赖。如果spring-boot版本大于2.3.x，则需要手动引入
 *
 * 如果校验失败，会抛出MethodArgumentNotValidException异常，Spring默认会将其转为400（Bad Request）请求。
 * 检验测试类   Hibernate Validate
 *
 * @Length(min=,max=) 检查所属的字段长度是否在min和max之间
 * @Range（min=,max=,message=） 被注释的元素必须在合适的范围内
 * @Max 该字段只能小于或等于该值
 * @Min 该字段只能大于或等于该值
 * @NotNull 不能为null
 * @NotBlank 不能为空，检查会将空格忽略
 * @NotEmpty 不能为空，这里的空是指空字符串
 * @Pattern（regex=，flag=） 被注释的元素必须符合指定的正则表达式
 */
@Data
public class VaildTest {

    //唯一标识符为空
    @NotBlank(message = "user uuid is empty")
    //用户名称只能是字母和数字
    @Pattern(regexp = "^[A-Za-z0-9]+$", message = "data set names can only be letters and Numbers")
    @Length(max = 2, message = "user uuid length over 2 byte")
    private String userUuid;

    @NotBlank(message = "不能为空")
    private String name;
//
//    //数据集描述最多为256字节
//    @Length(max = 256, message = "data set description length over 256 byte")
//    //数据集描述为空
//    @NotBlank(message = "data set description is null")
//    private String description;

}
